import get_str_byte_length from './str-byte-length';

/**
 * ## 按字节长度截取字符串
 * @param  {string} p_str            原始字符串
 * @param  {int} p_limit_byte_len 要截取字符串的字节长度
 * @return {string}                  截取的字符串
 * @example
 * console.info(lang.trim_right("飞道科技", 7));
 * console.info(lang.trim_right("飞道科技", 8));
 */
export function trim_right(p_str: string, p_limit_byte_len: number) {
	const len = get_str_byte_length(p_str);
	if (len > p_limit_byte_len) {
		let i = 0;
		for (let l = 0; i < p_str.length; ++i) {
			const c = p_str.charCodeAt(i);
			if ((c >= 0x0001 && c <= 0x007e || 0xff60 <= c && c <= 0xff9f)) {
				// 单字节
				++l;
			} else {
				// 双字节
				l += 2;
			}
			if (l > p_limit_byte_len) {
				break;
			}
		}
		p_str = p_str.substr(0, i);
	}
	return p_str;
}
